package org.jackysoft.service;

import java.io.IOException;
import java.util.Collection;

import org.jackysoft.entity.ArmMonthlyFinishedProductReporter;
import org.jackysoft.entity.Department;
import org.joda.time.DateTime;
import org.springframework.dao.DataAccessException;

public interface ArmMonthlyFinishedReporterService extends	ReporterService<ArmMonthlyFinishedProductReporter> {

	/**
	 * 
	 * @return 结果月报
	 * @param year 年
	 * @param month 月份
	 * @param dept 部门
	 * */
	ArmMonthlyFinishedProductReporter get(int year,int month,Department dept)throws DataAccessException;
	
	/**
	 * 获取本部门某年最后一个月的表
	 * @param year 年份
	 * @return 报表
	 * */
	ArmMonthlyFinishedProductReporter getLastOfYear(int year) throws DataAccessException;
	
	/**
	 * 生成该日期所有部门月报
	 * @param cal 生成日期
	 * @author 屈甲康
	 * @return 生成的月报对象
	 * */
	Collection<ArmMonthlyFinishedProductReporter> generateAll(DateTime date) throws DataAccessException;
	
	Collection<ArmMonthlyFinishedProductReporter> generateAll() throws DataAccessException;
	
	
	/**
	 * 某年某月的生产月报导出为Xls
	 * @param year 年份
	 * @param month 月份
	 * */
	byte[] export2Xls(int year,int month) throws DataAccessException, IOException;
	/**
	 * 生成该部门指定日期月报
	 * @param cal 日期
	 * @param dept 部门
	 * */
	ArmMonthlyFinishedProductReporter generate(DateTime cal, Department dept) throws DataAccessException;
	
	/**
	 * 清理月报
	 * 
	 * @author 屈甲康
	 * @return 行数
	 * @param cal 日期
	 * @param dept 部门
	 */
	int clean(DateTime cal,Department dept) throws DataAccessException;
	
}
